﻿using System;

namespace Community.CsharpSqlite.WP.SqliteDataProvider.Base
{
    public interface IDataRecord
    {
        T GetTypeOf<T>(string fieldName);
        T GetTypeOf<T>(int i);
        bool GetBoolean(int i);
        byte GetByte(int i);
        int GetBytes(int i, int fieldoffset, byte[] buffer, int length, int bufferoffset);
        char GetChar(int i);
        int GetChars(int i, int fieldoffset, char[] buffer, int length, int bufferoffset);
        IDataReader GetData(int i);
        string GetDataTypeName(int i);
        DateTime GetDateTime(int i);
        decimal GetDecimal(int i);
        double GetDouble(int i);
        Type GetFieldType(int i);
        float GetFloat(int i);
        Guid GetGuid(int i);
        short GetInt16(int i);
        int GetInt32(int i);
        long GetInt64(int i);
        string GetName(int i);
        int GetOrdinal(string fieldName);
        string GetString(int i);
        object GetValue(int i);
        bool IsDBNull(int i);

        int FieldCount { get; set; }
        object this[string name] { get; set; }
        object this[int i] { get; set; }
    }
}
